home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / amiga-magazin-pd / 03-95-2 / einfach klasse / listing-3.c < prev    next >
C/C++ Source or Header  |  1995-03-09  |  654b  |  37 lines

  1.  
  2. /*
  3.  * Listing 3: ©1994 Clemens Marschner
  4.  * einfaches Beispiel von try und catch
  5.  * Listing 2 ist zum Abdruck allerdings vorzuziehen,
  6.  * da es einige Sachverhalte mehr abdeckt. Dieses nur bei 
  7.  * akutem Platzmangel statt Listing 2 einsetzen!
  8.  */
  9.  
  10. #include <pragma/exec_lib.h>
  11. #include <stream.h>
  12.  
  13. struct MemX {
  14.     long Size;
  15.     MemX(long sz) : Size(sz) {}
  16. };
  17.  
  18. void *allc() {
  19.     void *mem;
  20.     const size = 100000000;
  21.     // »sehr viele Bytes«
  22.     if(!(mem=AllocMem(size, 0)))
  23.         throw MemX(size);
  24.     return mem;
  25. }
  26.  
  27. void main() {
  28.     try {
  29.         void *mem = allc();
  30.         FreeVec(mem);
  31.     } catch (MemX mx) {
  32.         cout << "Konnte " << mx.Size << " Bytes nicht" 
  33.         " allokieren!\n";
  34.     }
  35. }
  36.  
  37.